Dynamic Price Tracking for Products and Services in Electronic Commerce

ABSTRACT

A computing system for tracking price changes in assets like products and services includes a data storage device for storing executable code, and a processing system associated with the data storage device. The computing system receives an identity of an asset with a price that is subject to change over time. A rule is identified for determining whether a specified action is authorized in the event the price changes. The computing system tracks the price over time, identifies any changes in the price, and issues a notification regarding a change in the price when the rule authorizes the action.

CROSS-REFERENCE TO RELATED APPLICATION

The present Application for Patent claims priority to ProvisionalApplication No. 60/866,433 entitled “System And Method For TrackingTarget Assets And Alerting Users Of Changes On A Computer Network,”filed Nov. 20, 2006, attorney docket no. 79789-011, and assigned to theassignee hereof and hereby expressly incorporated by reference herein.

FIELD

The present invention relates generally to conducting transactions inelectronic commerce, and more specifically to techniques for dynamicallytracking prices of goods and services available for purchase over acommunications network.

BACKGROUND Description of Related Art

Many different types of assets may be available to a consumer in theworld of electronic commerce on the Internet. Some of these assets canbe highly volatile, having characteristics that often tend to changewith time. Examples include items like stocks, antiquities, concerttickets, bank interest rates, precious metals, money markets, airlinetickets, hotel prices, and the like. The prices of these items oftentend to fluctuate, rendering it a challenge for a consumer attempting tokeep track of the current values and other characteristics of differentasset descriptions found on disparate websites.

The changing nature of assets such as the ones describe above mayentitle a consumer to a benefit. For example, where the consumer has yetto purchase the asset, certain conditions may entitle the consumer to adiscount from the initially viewed purchase price. Alternatively, wherethe consumer has already purchased the asset, certain other conditionsmay entitle the consumer to a refund. While benefits like these may behighly desirable, whether such benefits may apply to the consumer'ssituation is a question that may be difficult in practice to answer.Conventionally, a consumer may consult the vendor website, the law, oranother appropriate source to investigate as to whether the consumer iseligible to receive some benefit when, for instance, the price changesto a certain value. In addition, where the benefit is dependent at leastin part on the price of the asset, the consumer often must monitor theasset for the price change. These endeavors are burdensome, inefficient,and often lead to consumer frustration. In many cases a user mightdetermine that performing these actions is not worth the possible payoffif an applicable benefit is identified.

Equally difficult is the task for consumers who opt to perform thesesearches to determine whether the potentially applicable provision oflaw, clause in a purchase agreement, or the like, actually entitles themto the benefit sought even if a new price for the asset is published. Inan illustrative scenario, the consumer has purchased an item on theInternet from a web site, has placed items in a shopping cart or wishlist associated with a web site, or both. The consumer may be unclearwhere to find such information (e.g., on the website or otherwise)relating to the applicability of any benefits such as refunds ordiscounts, and whether any such information applies to the consumer'ssituation based on the price change at issue or other criteria.

The problem is exacerbated where a consumer is attempting to determineentitlements relative to several purchases or prospective purchases overmore than one websites. Presently, consumers lack a more efficient andstreamlined procedure to keep track of changes in prices of assets invarious locations on the Internet or to determine whether any pricechanges lead them to entitlements such as refunds for an asset alreadypurchased, or both.

Accordingly, a need exists in the art for a superior method and systemfor keeping track of price changes of an asset and for notifying usersin the event an entitlement is determined that overcomes the abovedisadvantages.

SUMMARY

A computing system for tracking price changes in assets like productsand services may include a data storage device for storing executablecode, and a processing system associated with the data storage deviceand configured to run the code, wherein the code is configured when runto receive an identity and a price of an asset, the price comprising afirst value and subject to change over time, identify at least one rulefor determining whether a specified action is authorized when the pricechanges from the first value to a second value, track the price overtime, identify a change in the price from the first value to the secondvalue, and issue a notification sufficient to identify the second valuewhen the at least one rule authorizes the action.

A computing system may include a data storage device having executablecode stored thereon, a processing system configured to run theexecutable code; the code configured when run to receive an identity anda first price of an asset, the price subject to change over time,determine at least one tracking rule for the asset, cause a query to beexecuted in accordance with the at least one tracking rule, the queryconfigured to identify whether a price of the asset has changed, issue anotification including a second price identified above if thenotification is authorized by the at least one tracking rule; and repeatthe causing and issuing steps one or more times if the notification isnot authorized.

A computer may include a display, a memory device having executable codestored thereon, a processing system associated with the display and thememory device and configured to run the code, the code configured whenrun to execute a query at a website, retrieve an identity and a price ofan asset from the website, send the identity and the price over anetwork to a specified node, receive a request from the node to executean automated query at the website to determine whether the price haschanged, execute automated query at the website in response to the oneor more requests, send data retrieved by the query to the node, the datacomprising a new price, receive a notification from the node inaccordance with a tracking rule, and displaying the notification on thedisplay.

It is understood that other aspects of the invention will become readilyapparent to those skilled in the art from the following detaileddescription, wherein various aspects of the invention are shown anddescribed by way of illustration. As will be realized, the invention iscapable of other and different configurations and implementations andits several details are capable of modification in various otherrespects, all without departing from the scope of this disclosure.Accordingly, the drawings and detailed description are to be regarded asillustrative in nature and not as restrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an exemplary embodiment of aserver system in a distributed network.

FIG. 2 is a block diagram illustrating an exemplary embodiment of aclient in a distributed network.

FIG. 3 is a flow diagram of an exemplary method for conducting adistributed search.

FIG. 4 is a flow diagram of a method for conducting a search for arefund.

FIG. 5 is a flow diagram of a method for rendering an improved resultspage that, in one embodiment, involves overlaying content onto a webpage.

FIG. 6 is an illustration of a web page from a fictitious travel websiteoverlaid with content.

FIG. 7 is a flow diagram of a method for initiating and performingtracking as a result of a selection of a user control.

FIG. 8 is a flow diagram of an exemplary method for conducting adistributed search for a refund.

FIG. 9 is a flow diagram of an exemplary method for creating a trackingrule based.

FIG. 10 is an exemplary graphical user interface (GUI) for configuring aclient account.

FIG. 11 is a block diagram of an exemplary embodiment of components of acomputing system in accordance with the invention.

DETAILED DESCRIPTION

Agents may be used in a distributed network to perform queries at nodesfrom which information can be obtained. A computing system may delegatetasks to perform to the agents at the nodes. When the tasks areperformed, information acquired from performing the tasks may beforwarded to the computing system for storage in a central database.Because the tasks are performed by the agents, the data retrievalprocess according to the present disclosure is not thwarted by blockingsoftware at the nodes.

Below is a description of an Electronic Commerce (eCommerce) basedapplication to which the present disclosure may be applied. It should beunderstood, however, that the present disclosure is not limited tostrict monetary-based eCommerce applications. Rather, the principlesherein may be equally applied to other arenas such as blogs, specialinterest websites, informational websites, politically affiliated nodes,religious websites, databases, and the like. Further, the principles ofthe present disclosure are not limited to the HyperText TransferProtocol (HTTP), but may extend to other protocols and configurations(e.g., file transfer protocol, active server pages, common gatewayinterface, etc.) whether or not web-based.

eCommerce refers generally to commercial transactions conducted at leastpartially over the Internet. Users may visit an eCommerce website, forexample, using a client device (e.g., a computer, mobile phone, etc.)having a user agent (e.g., web browser, screen reader, mobile phoneinterface, etc.). While visiting a site, users may search for andpurchase “target assets,” or goods and services of interest to aparticular user. The ease with which consumers may search for andpurchase target assets, such as airlines tickets, hotel reservations,car rentals, cruise tickets, collectibles, computers, books, etc., hascontributed to the popularity of eCommerce. Users are interested inhaving access to timely, comprehensive and targeted information, meaningthat users want immediate access to a high percentage of relevantinformation and a low percentage of irrelevant information.

eCommerce relates to many different economies, of which travel isreported to be the largest and is therefore an appropriate exemplaryeconomy for eCommerce in general. The present disclosure addresses anumber of shortcomings of present eCommerce systems and methods ingeneral, and travel eCommerce systems and methods in particular. Thepresent disclosure addresses, for example, the inability to accuratelytrack a target asset over time.

When a user visits a travel website, such as an online travel agencywebsite (e.g., Expedia.com, Orbitz.com, Travelocity.com,CheapTickets.com, etc.), an airline website (e.g., AlaskaAir.com,Continental.com, Southwest.com, etc.), or other types of travel websites(e.g., Kayak.com, Sidestep.com, Priceline.com, etc.), there are avariety of options for searching for information about a currentcharacteristics of a travel asset (e.g., price and availability for anairline ticket, hotel reservation, car rental, cruise ticket, etc.).

However, given that travel asset characteristics are highly volatile,having over a million daily changes to airline data alone, this type ofsnapshot information may fail to provide a user with adequateinformation to make an informed decision. Accordingly, users may desirethe ability to track a particular target asset over time. A user may,for example, set up a target asset alert at an online travel agencywebsite or airline website and receive periodic updates of “subscriptiontravel information,” where subscription travel information may bedefined as the information automatically distributed from a source oftravel information. However, subscription travel information may bedifferent than “browser travel information,” where browser travelinformation may be defined as the information that is delivered inresponse to a request during a period of interactivity between a useragent and a source of travel information, such as a HTTP responsedelivered from a web server in response to an HTTP request from a webbrowser or other user agent. For example, an airline may make its bestfares available only on its own website such that a particular fare maybe delivered to browsers via browser travel information and notdelivered to subscribers via subscription travel information.

Although a user may track a flight by repeatedly visiting a website inorder to continually request browser travel information, as noted above,this method for price tracking may lead to user frustration due to theamount of time required to track a target asset. Furthermore, if a userrelies on manually searching for target assets and a dramaticfluctuation occurs (e.g., a fare for an airplane tickets drops), theuser may be unaware of and unable to take advantage of the fluctuationbecause the delivery of the information was not timely.

A centralized server system configured to “scrape” information fromtravel websites may attempt to provide a user with browser travelinformation by mimicking the functionality of or impersonating a webbrowser. However, as described above, travel websites may be configuredto prevent this type of behavior. For example, a website may beconfigured to ignore requests from a particular internet protocol (IP)address, a range of IP addresses, and/or a user-agent signature, or takeother actions to prevent a centralized server system from providingusers with comprehensive and targeted travel information. As describedabove, the present disclosure describes an apparatus and method fordelegating server queries which overcomes this problem.

The present disclosure further overcomes many of the shortcoming ofcurrent eCommerce systems and methods as they relate to refund tracking.Because the price of a target asset may change after a user makes apurchase, the user may be entitled to a refund, credit, or otherconsideration. However, repeatedly checking to see if a price haschanged may be time consuming. Furthermore, because airlines may want toprevent high-priced fare purchasers from receiving a refund, determiningrefund policies and processes might be made intentionally challengingfor a user. These and other factors may collectively prevent a user fromclaiming a refund or credit to which the user is otherwise entitled. Thepresent disclosure describes an improved system and method for trackinga price in order to provide a user with notification of an applicablerefund under a variety of conditions.

The present disclosure further overcomes many of the shortcomings ofcurrent eCommerce systems and methods as they relate to the inefficiencyof using information from a first website at a second website. Forexample, if a user visits an online travel agency and finds a desiredfare, the fare may include a service fee charged by the online travelagency that the user would not have to pay by purchasing directly fromthe airline. Having to enter the ticket information (e.g., flight,departure and arrival airports, date, number of passengers, etc.) at theairline website may lead to user frustration. Some users may not bewilling to duplicate their efforts, or may be unaware that lower faresare offered at the airline web site, thereby causing the users to payhigher fares for a ticket. Similarly, a user may want to track a fareover time using a third-party website, but having to enter the ticketinformation of a discovered flight into the third-party site may preventthe user from tracking the fare. The present disclosure addresses theseand other problems by providing tag overlay capability as well asdynamic asset tracking.

Embodiments of the present invention include a method and system fordistributed, iterative, and enhanced travel search. Exemplaryapplications of the present invention include a server system configuredto coordinate searches of distributed client applications, a serversystem configured to track refunds for a purchased asset, and a clientoverlay tool configured to overlay supplemental content on a certain webpages, such as travel-related web pages.

Embodiments of the present invention may provide for the followingsystems and corresponding methods. Specifically, the present inventionmay provide for managing a network of distributed client executablesconfigured to perform target asset queries. The server system includes atracking engine that stores what target assets are to be tracked andwhat users are to be notified when an attribute of a target assetchanges. Additionally, the server system has a client coordinationengine that communicates with the client executables, includingperiodically sending tasks to the distributed client executables basedon the tracking rules. These tasks include querying a target website(e.g., querying a travel website for the price of a particular ticket)and reporting the retrieved information to the server system. The clientcoordination engine, as described in greater detail below, may send atask to a first user client despite the fact that this task relates to asecond user's tracking rule such that the first user's client may beconducting a query on behalf of a second user.

Additionally, the server system includes a refund engine that allowsusers to track an asset for the purpose of receiving an alert when arefund is available. By storing characteristics of a purchased asset,the system may periodically query the asset source for updatedinformation about the source and the source's refund guidelines. Byknowing what a user paid for the asset, the current price of the asset,and the guidelines of the source, the refund engine may determine when arebate is available and notify the user accordingly.

The server system additionally includes an overlay engine that storeoverlay rules. These overlay rules determine whether content will beadded to a received web page (e.g., whether the page is an overlay page)and what content will be added. A particular example includes overlayingtravel information to a results page from an online travel agencywebsite, such as a “buy direct” hyperlink that enables a user to buy aticket directly from the source without having to re-enter the ticketinformation and a “track this flight” hyperlink that enables the user toreceive periodic updates about changes to the cost of a correspondingflight.

FIG. 1 is a block diagram illustrating an exemplary embodiment of aserver system in accordance with the present disclosure. Shown areserver system 200, target websites 112, 113, and clients 101, 102, 103.These devices communicate over a network, such as the Internet 104. Forpurposes of this disclosure, a client acts as an agent on behalf ofserver 200 when it performs tasks or runs queries and returns theresults of those tasks or queries to server 200.

The server 200 is a computer or group of computers (further illustratedin FIG. 11) that, depending upon the application, may perform bothserver and client-related tasks as those terms are used in the art. Forclarity, however, the terminology “server” is simply used to distinguishthis system from the distributed clients in the network and the targetwebsites.

Server system 200 supplies the resources (e.g., processors, memory,operating system, etc.) necessary for running a number of engines ofexecutable code to implement the techniques described in thisdisclosure. Server system 200 includes server engine 201, web engine202, client coordination engine 203, tracking engine 204, notificationengine 205, refund engine 206, and overlay engine 207, as well ascommunication interface 210. Each of these engines may include hardware,software, power, and networking assets, as described in greater detailbelow with reference to FIG. 11. Additionally, server system may beimplemented on a single server, on a plurality of task specific servers(e.g., a database server and a web server), a plurality of redundantservers, or using other configurations. Server system 200 need not belocated in a single location.

Server engine 201 handles coordination between the various engines202-207. Web engine 202 handles web requests from clients 101, 102, 103and provides appropriate web responses. Users may manage which assetsthey are tracking, notification settings, refund information, etc., byinteracting with web engine 202. Client coordination engine 203 handlescommunication between client executables distributed to clients 101,102, and 103 including task assignment and response retrieval.Additionally, client coordination engine 203 distributes overlay rulesused in the overlay tools (depicted in FIG. 2) to clients 101, 102, and103. Client coordination engine 203 may communicate with clientexecutables in a variety of methodologies including poke (e.g., whereclient coordination engine 203 initiates communication with clientdevice 101, 102, 103), client-initiated (e.g., where client device 101,102, 103 periodically request updates from client communication engine203), a combination thereof, and other methodologies.

Client coordination engine 203 works directly with tracking engine 204to ensure that target assets are periodically checked. Tracking rules,which identify a target asset to be tracked and a user to be notifiedwhen a characteristic of the target asset changes, are stored in thetracking engine 204. Periodically, server engine 201 will identifytracking rules that need to be executed and deliver these to clientcoordination engine 203 for delegation to the client executables. Theuser may modify tracking rules associated with the user's account byinteracting with web engine 202, such as changing a price threshold orreporting frequency for a particular asset. In one embodiment, a firstuser's client device may be assigned a task on behalf of a second user,thereby ensuring that the information is periodically updated even if auser is not able to perform a query directly. When updated informationis received, it may be delivered to notification engine 205 to determinewhat users should be notified of the updated information and how theseusers should be notified. For example, notification engine 205 may firstdetermine whether a price variance threshold has been met (e.g., if auser has specified that changes are to be reported for $25 changes andthe price has changed by $50, the notification engine 205 may prepare anotification) and whether a preference setting allows for notification(e.g., if a user has specified to receive updates only daily and anotification has already been sent, the notification engine 205 maywithhold or defer the notification).

Refund engine 206 stores store refund guidelines for target assetproviders as well as target asset characteristics (e.g., purchase price,airports, flight number, and airline). Server engine 201 may create atracking rule in tracking engine 204 and periodically query targetwebsites 112, 113 (or delegate tasks to clients 101, 102, 103 to querytarget website 112, 113) to monitor price changes of the target asset.When a price changes, refund engine 206 may determine whether a refundis due based on the refund policy or guideline for a particular vendorand the amount of the difference between the purchase price and thecurrent price. If a refund is due, server engine 201 may provide thisinformation to notification engine 205 so that the user may be notified.Alternatively or additionally, the refund engine 206 may simply identifya price change and a reference to the guideline (e.g., a hyperlink to anairline's return policy web page) and allow a user to determine whethera refund is due.

In one embodiment, entitlements to a refund, discount, or other benefitmay be stored as one or more tracking rules, which may be stored in therefund engine 206 or in the tracking engine 204. In this embodiment,where the rule authorizes an action, this information can becommunicated to a user so that the user can receive the associatedbenefit. Thus, for example, if the tracking rule is that a refund isauthorized by the target asset provider if the price of a target assetchanges from $200 to $100, and if the tracked price drops to $100, thenthis information may be communicated to a user so that he can receivethe benefit of the refund (e.g., a $100 credit).

Furthermore, as described in greater detail below, refund engine 206 mayclaim the refund on behalf of the user automatically orsemi-automatically, in accordance with user preferences, globalpreferences, or other criteria.

FIG. 2 is a block diagram illustrating an exemplary embodiment of aclient located in a distributed network in accordance with the presentinvention. Shown are clients 101, 102, 103 (also referred to as agents),server 200, target websites 112, 113, and the Internet 104. Client 101includes a client engine 105, web browser 106 with browser overlay tool107, and server coordination engine 109 and query engine 110 (referredto collectively as client executable 108). Note that, while in thisillustration the agents communicate with a target website over Internet104, a different type of network may be equally suitable depending onthe particular application.

Client engine 105 provides processing power for the client device andhandles coordination between different applications and engines. Webbrowser 106 may be a conventional web browser (such as InternetExplorer, Firefox, Netscape, Mozilla, Opera, etc.), a customized webbrowser for a cell phone, BlackBerry, PDA, or other web interfacedevice. The overlay tool 107 may be a toolbar, such as a toolbar builtas a browser helper object for Internet Explorer. Overlay tool 107extends the functionality of web browser 106 by selectively addingcontent to a received web page based on a set of overlay rules. In oneembodiment, these overlay rules specify that for a given results page(e.g., a results page from an online travel agency), additional contentis to be inserted into the output. For example, if a user is searchingfor flights on Expedia, and the result list that is returned includesten different flights, the web page may be modified such that the webpage that the user sees includes additional content not provided byExpedia. This additional content may include a “buy direct” hyperlinkthat enables a user to purchase a ticket directly from an airline, and a“track this flight” hyperlink that enables a user to track a flight(e.g., causes a new tracking rule to be created in tracking engine 204).The process of creating overlay rules and manipulating rendered contentis described in greater detail with respect to FIG. 5.

Client executable 108 is in one configuration an executable that runs asa process on a client machine (e.g., the client automatically loads theprocess on start-up without requiring user interaction). In oneembodiment, the two components of client executable 108 are servercoordination engine 109 and query engine 110. Server coordination engine109 handles communications of tasks from and results to the clientcoordination engine 203. The tasks may be, for example, tasks torepeatedly query a travel website for a particular flight until theclient coordination engine 203 tells the executable to stop. The taskmay include a priority, such that if the executable is tasked withseveral queries, the executable can be directed to conduct a particulartask first.

Communications may be initiated by the client executable 108, by theclient coordination engine 203, or both. Communications to the clientcoordination engine 203 may be handled as soon as they are available(e.g., to support a real-time request from a user interacting with webengine 202) or aggregated to limit network traffic or to accommodatecommunication problems (e.g., updates are aggregated and sent as a groupby the server coordination engine 109 and sent to the clientcoordination engine 203 periodically). Whether a report is sentimmediately or aggregated may be dictated based on the initial tasking(e.g., the task may include an immediate response attribute). The actualcommunication may be by any conventional protocol, including an HTTPrequest from the server coordination engine 109 to the web engine 202that can provide the information to the client coordination engine 203.

Query engine 110 executes received tasks based on their priority and inaccordance with system and user settings. For example, a system or usersetting may specify that there must be five minutes between queries, orquery only when client engine 105 is idle, so that a client machine isnot burdened by excessive query traffic. In one embodiment, query engine110 may conduct queries on behalf of multiple clients or users (e.g.,not just a user associated with client 101). Additionally, when queryengine 110 visits a website, it may provide a user agent signaturesimilar to the web browser 106 on client 101, such that the targetwebsites 112, 113 receive the same user agent signature whether webbrowser 106 or query engine 110 initiates the request.

Server coordination engine 109 and query engine 110 may communicate viaa shared file or files. For example, when query engine 110 receivesresults from a query, these results may be written to an eXtensibleMarkup Language (XML) file that the server coordination engine 109 usesto communicate to the server system 200. Similarly, the overlay tool maywrite to a shared XML file when a user clicks on a “track this flight”hyperlink and the server coordination engine 109 may use this file tocause a new tracking rule to be created in the tracking engine.

FIG. 3 is a flow diagram of a method for conducting a distributed searchin accordance with the present invention. This method includes, in step302, distributing client executables to a plurality of distributedclients (e.g., clients 101, 102, and 103 in FIGS. 1 and 2). This may beaccomplished by allowing users to download software from a website,mailing media to a user, bundling the software with other applications,or by other means. In one embodiment, a user of a client may access theInternet to download the executable from a website associated with theserver system 200 (FIG. 1).

Next, the user identifies one or more assets to be tracked (step 304).That information is conveyed to the server 200, for example, via theserver coordination engine 109 (FIG. 2). Determining a query to be runbased on the assets to be tracked (step 306) may involve identifyingactive tracking rules in the tracking engine and the amount of timesince an asset was last checked. In some embodiments, the server 200simply delivers a request for the client 101 to execute the query. Theclient executable is these cases is configured to formulate the query,or alternatively to download or receive the query from a user orexternal source. In other embodiments, as in step 306, the serverformulates the query, in this case based on tracking rules, elapsed timesince the last search, or similar criteria. In some situations it isadvantageous to formulate the query at the server end, to minimize theburden on client resources. In general, the actual formulation of thequery may be performed at either the client or server end withoutdeparting from the scope of the present disclosure.

Because some websites may not allow automated queries as describedabove, server 200 may store information about which target websites mayprevent server 200 from successfully completing a query of the targetwebsite. If the server 200 has been blocked before (decision branch 308)the server system may automatically delegate the query to one or moreavailable client executables (step 310). If the server 200 has not yetbeen blocked, the server 200 may attempt to query the target websitedirectly (step 312). Querying a website regarding a target asset by aserver system may involve a scraping application to request informationfrom the target website for information relating to a target asset. Ifthe query is not successful (decision branch 314) (e.g., the targetwebsite fails to respond to the request or responds with informationthat is different than the information that is delivered to a browser),the system may delegate the query to one or more available clientexecutables 316. Thereupon, after the client executes the query at thetarget node, the client may send or return the requested data obtainedfrom the query to the server (step 317). The data obtained from theclient may be deposited by the server in a central database for futureuse by the client that ran the query or by other clients in thedistributed network. Preparing notification for the user (step 318) maybe implemented in accordance with system settings, user settings,tracking rules, or settings for a particular target asset.

In another embodiment, the server system 200 may be set up toimmediately delegate the query to one or more available clientexecutables (step 310). This alternative embodiment is illustrated bythe dashed line 307 connected to the line extending to step 310,substituting the decision path relevant to a possible server query for astraight delegation instead. The client executable that is the subjectof step 316 may be the same client that identified the target asset andtarget node in the first place. Alternatively, where that client isunavailable, busy, idle or otherwise nonresponsive, the server maydelegate the search to another client executable to perform. The latterthen will return the results of the search to the server as in step 317.In this embodiment, the tracking or data acquisition process maycontinue unimpeded even if a requesting client's resources areunavailable or being used for other applications.

Using the principles described above, a data scraping program is able toaccess a target website even if the website is running a standardblocking program to block data scraping. Because the actual queries fordata are being conducted at agent machines instead of the server 200itself, the blocking program is unlikely to block access to the targetwebsite for the reasons described above. Further, unlike a serverrunning a scraping program that potentially seeks voluminous amounts ofdata, each agent in one embodiment conducts queries for a relativelysmall amount of data in comparison. Accordingly, the agents are unlikelyto be flagged and blocked by the target website as exceeding a volumethreshold at the website. After the data is obtained from the targetwebsite by each agent to which tasks are delegated, the resulting datacan easily be streamlined and centralized by the server 200 in adatabase for subsequent use.

In another embodiment, the search by the client may be tailored to havesubstantially the same characteristics as a search performed in realtime by an individual. For example, the search can be made to appearrandom to the target website in the same way a user may send ostensiblyrandom queries to the website.

FIG. 4 is a flow diagram of a method for conducting a search for arefund in accordance with the present invention. Receiving a set ofinformation at the server relating to a purchased asset from a user(step 402) may involve receiving an airline and a confirmation code, forexample, which may be used to determine a variety of asset attributes,including arrival and departure cities, dates, and times, and a purchaseprice. This information may be stored in refund engine 206 (FIG. 1).Based on the arrival and departure cities, dates, and times, a trackingrule may also be created and stored in the tracking engine 204 (step404). The tracking rule(s) may delineate criteria for tracking, such ashow frequently a follow-up query should be done, at what locations(e.g., websites or databases) the query should be performed, thecircumstances under which tracking should continue or terminate, and thelike. The tracking rules may also identify whether a user is entitled tosome type of benefit.

For example, a prospective purchaser using a client machine to track theprice of a target asset may, under the guidelines of the target websiteor as provided by law, become entitled to a discount. The user'sentitlement to a discount may arise, for example, if the price of thetarget asset drops below a certain amount. Likewise, a user of themachine who already purchased the target asset may under certainconditions be entitled to a partial or full refund as a result of theprice of the asset dropping below a specified threshold. In either case,the criteria for the benefit and an identity of an action authorized inthe event of a change in price or other contingency can be stored as aset of tracking rules along with the other types of more typicaltracking criteria referenced above.

The tracking then proceeds over time based on the criteria set forth inthe tracking rules. Periodically or at designated times, the price ofthe asset is checked as long as the purchased asset is active (decisionbranch 406 and step 408). For example, as long as the date of a flightfor a purchased airplane ticket has not passed, or the user or thesystem has not deleted or disabled a tracking rule, the system willcontinue to determine whether a refund is available (steps 410 and 414).This tracking rule may lead to the server periodically checking theprice of a flight (step 408), the server delegating a task to one ormore client executables to check the price of a flight (depicted in FIG.3), or other action. If a lower fair threshold is reached (decisionbranch 410) based on the threshold preferences associated with thetracking rule, the user will be notified (step 412) in accordance withthe user's notification settings. Where the lower fair thresholdindicates, based on a rule from a vendor or other criteria, that someaction (e.g., issuing a refund) is authorized, then the notification instep 412 may include a notification to the user, a request for the userto confirm that the server 200 can process the refund, or both.

Where it is determined that the purchased asset is no longer active asdescribed above, the server will remove the tracking rule(s) associatedwith the purchase of that asset from the tracking engine 204 and thetracking process of this example is complete (steps 416 and 418).

In one embodiment, the refund may be handled automatically (e.g., wherethe user receives a refund if a refund becomes available without useractivity), semi-automatically (e.g., where the user is presented withthe option of collecting a refund and, if the user elects to collect therefund, the system handles the collection of the refund), or by othermeans. The billing for this service may be implemented on a flat-feebasis, a percentage of savings basis, a percentage of price of the totalasset, or by other criteria depending on the nature of the service.

In another embodiment, the tracking rules may include a rule obtainedfrom the vendor of a product or service. Such a rule may include, forexample, a set of criteria for determining whether a particular actionis warranted—e.g., whether purchaser of the good or service is entitledto a refund, whether a store credit becomes available, etc. When achange in the price occurs, the server may compare the change in theprice (e.g., the new low price or the amount of the change, or both)with the rule. In the case of a refund, if a rule is met, the server mayissue a notification to a user identifying that a refund is available(step 412), or handle the refund automatically or semi-automatically asdescribed above.

Rules from the vendor may be obtained from the server by the vendor,from the client, or through other means. The rules may also originatefrom a vendor of the asset at issue, but may be received by the server200 as a result of a request to a client machine to execute one or moreappropriate queries at the vendor's web site. Alternatively, the server200 may execute the query. In addition, the operators of server 200 mayprovide these rules to the server in advance, based on, for example,provisions of law, website or vendor guidelines, or rules of purchase ofvarious assets from the vendor or other target asset provider.Thereupon, either the server 200, the operators, or another system orthird party can monitor the sources of the rules for any applicablechanges and the rules in the server can be updated as necessary.

In one embodiment, a user's entitlement to a benefit like a refund (foran asset already purchased) or a discounted price (for an asset forprospective purchase) is determined by the rules at the server, so thatthe user is relieved from having to directly engage in the oftencomplicated endeavor of figuring out his or her entitlement, if any, tosuch benefits. In addition, the computing resources required for makingsuch determinations may be kept in this embodiment at the server 200 toavoid burdening the client machine from having to perform computationsrelating to this inquiry.

FIG. 5 is a flow diagram of a method for rendering an improved resultspage that, in one embodiment, involves overlaying content ontotravel-related web pages. Receiving a set of overlay rules at a client(step 502) involves first analyzing the results returned by a targetwebsite and determining patterns that may be used to overlay content onparticular web pages. For example, if a search is conducted on an onlinetravel agency website, a results page may be returned. This web page mayhave a particular HyperText Markup Language (HTML) pattern, such as afirst table having navigation information (e.g., queried flight timesand dates) and a second table having a number of different flightresults. A rule may be created that identifies each of the matchingflights by traversing the document object model, regular expressionmatching, or any number of other techniques for recognizing data valuesembedded in patterns in web pages or other electronically-rendereddocuments. These rules may then be encoded and distributed to clientmachines having software configured to implement the overlay rules(e.g., overlay tool 107). Thus, an exemplary software applicationcustomized for distribution to client machines may include a list of websites or network locations in which overlay can be performed accordingto the principles herein.

Receiving a web page response at the client (step 504) involves a uservisiting the network location or target website (e.g., the online travelagency website) and conducting a search. Although the flight informationmay be different, the returned results page may have a format matchingan overlay rule. A determination as to whether the web page or rendereddocument may be overlaid is made (decision branch 506). Thisdetermination of whether a page may be overlaid may be made based onsome or all of the URL of the requested page, the document object modelof the page, a combination thereof, or other criteria. If it isdetermined that the page may be overlaid based on one of the overlayrules, the content is modified (step 508) and the modified web page isrendered (step 510). For example, if it is determined, based on thedomain or the response and the document object model of the HTML page,that one or more flights has been returned, an overlay tool 107 or otherprocess or application may manipulate the rendered web page by addingone or more additional controls to each of the returned flights. If theweb page is not an overlay web page, then the server will not modify thecontent of the web page and the web page may instead be rendered as itwas received (step 510). The overlay cycle has thus been performed(514).

FIG. 6 shows an illustration of a website of a fictitious travel agencyoverlaid with content. The web page is a “results” web page in thisexample. That is, the web page includes a list of search resultsdisplayed in response to a user query. In particular, a user visits thehome page of the fictitious agency and executes a query for round-tripflights on particular days (here, Nov. 20, 2007 and Nov. 27, 2007,respectively) on a specified airline (i.e. Acme Air). The website mayrespond by returning a list of available departure flights and returnflights on the identified airline on the identified dates (not shown).Thereupon, the user selects a particular departure flight and aparticular return flight. The web page shown in FIG. 6 displays theresults of the user's selection of these two flights. This exemplary webpage also shows departure city (604), arrival city (606), airline (608),travel time (610), cabin class (612), and round trip price (614).

In this example, the overlay tool 107 may provide two extra usercontrols for the first flight (only “track this flight” 615 is shown)and two additional controls 616 and 618 for the second flight. The “buydirect” flight in this example is only shown in the return flight field,because this control may contemplate that the user desires a singlepurchase for the entire round trip ticket. However, other types ofcontrols or configurations may be equally suitable. As noted above, inthe example of FIG. 6, the overlay tool 107 provides two user controlsnear the data field (620) under the price column (614). Each of theadditional controls will be uniquely assigned to the return flight, suchthat clicking on “track this flight” (616) for the first flight willcause the return flight to be tracked and will not cause the outboundflight to be tracked. In one embodiment, clicking a “buy direct” (618)control from the online travel agency will cause a web page to berendered that is in a different domain than the domain of the onlinetravel agency (e.g., www.OTA.com is the domain of the online travelagency and www.airline.com is the domain of the airline). These controlsare placed near the data values with which they are associated (in thisexample, the results of the query) so that the user can readily identifythe controls and select them as necessary. Thus, in the example of FIG.6, the user controls 616 and 618 are substantially adjacent the price of$138.01 such that a user is advantageously more likely to associate theuser controls with the corresponding price and the return flight than ifthe user controls were not placed near the price (but rather, forexample, were placed on the top of the page above the list of resultsand could not reasonably be visually associated with a specific result).

In another embodiment, a user's selection of or clicking on the usercontrols placed by the client executable will initiate the trackingprocess described above with respect to FIG. 4. This embodiment is shownin FIG. 7. At step 702, the client receives a body of executable code asdiscussed with respect to previous embodiments. This executable code maybe configured to communicate with the server. That is, the code may beused to coordinate tasks with the server to accomplish one or more ofthe objectives set forth in this disclosure. The code in one embodimentmay include a software application or suite configured to enable aclient in a distributed network to track a different types of datasearches executed at a node, such as a website or a remote file server.The code may also be configured to monitor a user's searches (upon theuser's authorization) and transmit applicable data obtained fromsearches to the server 200 for processing (e.g., the identification ofan asset or a node, or both).

At step 704 the user executes a query for data at a desired node.Meanwhile, the client executable runs in the background and is alertedto user actions which authorize the client executable to performcorresponding actions. Step 704 may be accomplished when a user issearching web pages in a web browser. The code may monitor the searches,and may also prompt the user with a request, in the web browser orseparately, to enable tracking features or placement of user controls.Thereupon, the user may click on the request. In other embodiments, thetracking features are automatic and no further user action is requiredto initiate them.

When the user has obtained a search result, the client executable placesone or more user controls strategically positioned near one or more datafields associated with the search results. Illustrative user controlsare depicted in FIG. 6 above. If, for example, the data value representsthe price of a stock, a control such as “track this stock price” may beplaced adjacent the data value for the user to readily perceive. Theuser control may comprise, for example, a hyperlink, upon whichactuation by the user notifies the client executable to track the valuein the applicable data field.

In step 708, the user actuates the control by selecting or clicking onthe link. At which point, the client executable is prompted to deliver amessage notifying the server of the asset (in this case the stockprice), along with a request to track the asset (step 710). Thereupon,the normal tracking procedures are commenced by the server, such asthose illustrated in FIG. 4. Further, the user may elect to create,accept or modify tracking rules already stored or to be stored on theserver 200 in any number of ways depending on the capabilities of theclient executable and the server, such as identifying one or more nodesto track the asset, notify threshold values required for the server tonotify the client of any change, identify a frequency to track the assetor to notify the client, etc. (step 712). In one embodiment, theseactivities are automated by the server as a set of default activities,which a user may adjust or delete, as appropriate, through an interfaceprovided by the overlay tool 107 (FIG. 2).

At step 714, during the course of tracking an asset, the client and/orserver may collaborate to provide a summary of tracking results or otherdata on an electronic document such as a web page. The user can thendownload the appropriate web page and view the results or updates,obtain a refund, or make adjustments to preferences and the like. Inother embodiments the client executable is responsible for generating anaccessible electronic document without further server intervention.Alternatively, the tracking results or summary may also be provided in afield of the overlay tool 107, an e-mail, or other suitable means.

As stated above, in a preferred embodiment, users may modify the overlaybehavior by adjusting their preferences. For example, a user may electto suppress overlay behavior on a particular page, for a particularsite, or otherwise change the way in which the overlay tool operates.This modification may be implemented via the web engine 202, the overlaytool 107, or by other means. Furthermore, the content being provided maybe modified based on tracking rules. For example, if a user is currentlytracking a flight, and the user conducts a search that returns theflight being tracked, the overlay tool may not provide the “track thisflight” control, and may provide another control in its place (e.g.,“stop tracking this flight” or “change your tracking preferences”).These preferences may be stored on the client computer or, alternativelymay be uploaded to the server for storage and control.

FIG. 8 is a flow diagram of a method for conducting a distributed searchfor a refund. This method is a combination of the methods described withrespect to FIGS. 3 and 4. A user receives application software in theform of executable code. The software may be distributed by the servervia as a file or files via a download (step 804). Alternatively, thesoftware may reside on a CD, DVD, or it may be obtained from another website or network location. Using the software, the client enables theserver to receive information about an asset that was purchased (step806). For instance, if a user purchased a flight on a travel website,the software may enable the client to communicate information regardingthis purchase to the server. At this point, based on informationtransmitted by the client (such as, for example, desired pricedecrements required for client notification, etc.), the server createsone or more tracking rules for the identified asset (step 808). Theserver 200 may store the tracking rules in the tracking engine 204(FIG. 1) as described above.

At decision branch 810, the server inquires whether the purchased assetremains active (e.g., whether a refund is still possible, whether theflight has already occurred, and similar types of criteria). If theasset is no longer active, the server 200 removes the tracking rule fromthe tracking engine 204, and the exemplary process has completed (814and 826). If the purchase asset remains active, the server may attemptto conduct the query as in previous embodiments (step 812). If the queryis blocked by the target websites (branch 816), then the server 200 maydelegate the query to one or more client executables (step 818). Afterthe query is run by either the server or the client, a comparisonbetween the new price (if any) and a user-imposed threshold is made(branch 820). If the price has dropped below the threshold, theentitlement to a refund (if available) is reported to the user (step824). If not, step 810 through 824 repeat until the purchased asset isno longer active.

As noted above, in one embodiment the server may not perform the query,but may automatically delegate it. This technique is advantageous insituations where automated searches are often blocked by the applicabletarget nodes as described earlier in this disclosure. In this situation,the agent (client) computers in the distributed network may perform thesearches and return the results to the server. In still otherconfigurations, the server may delegate a search requested by one clientto another, such that when the requesting client is busy, idle, orotherwise nonresponsive, another available client in the distributednetwork can perform the search.

FIG. 9 is a flow diagram of a method for identifying a target to betracked. In one embodiment, the target asset parameters are received(step 902) at the server 200, such as a flight number, flight dates andtimes, and departure and arrival cities. Ranges may be provided, forexample, for the flight dates if the user's schedule is flexible. Thisinformation may be provided in various ways. One way is through theclient executable. For example, a user may authorize the clientexecutable to store this information upon the user selecting a link asdiscussed above with reference to FIG. 7.

At step 904, characteristic variance thresholds are received, such asthe price variance that occurs before the system notifies the user. Forexample, the user may select that notifications will be generated onlyfor changes greater than $25. Reporting frequency may be determined atstep 906, and a user may select to receive notifications once athreshold is met (e.g., immediately), once per day, twice per week, etc.Once the server has this information, it may create a tracking rule inthe tracking engine 204 (step 908), which may then lead to tasksdelegated to a plurality of the client executables as previouslydescribed. In one embodiment, each new tracking rule is provided with adefault set of characteristics (e.g., reporting frequency and pricethreshold), but the user may override these default settings eitherglobally (e.g., change it so that all tracking rules created in thefuture will take this new setting) or just for a particular asset (e.g.,change the settings for one tracked asset, but new tracked assets willbe provided with the system default).

FIG. 10 is an exemplary graphical user interface (GUI) for configuring aclient account 1000. This GUI is generated by web engine 202 (FIG. 1)and may be rendered by web browser 106 or other application. Refunds tab1001 is used for tracking rebates on assets already purchased, whiletravel planning tab 1002 is used for tracking assets that have not beenpurchased. The airline dropdown 1003 may be presented to a user first,because the information presented in panel 1004 may be dependant on theairline selected. For example, some airlines may have differentinformation that is required prior to being able to track a flight suchthat confirmation code 1005 and last name 1006 may be sufficient on oneairline, but another airline may require a user to provide departure andarrival date, time, and city (and purchase price for refunds). Hittingthe submit button 1008 causes a request to be initiated that is handledby web engine 202 (FIG. 1).

In one embodiment, a travel profile may be compiled for each of theusers, including frequent flier numbers, travel preferences, previousflights, etc. In this way, the system may continue to provide the userwith more relevant information and less irrelevant information withoutrequiring the user to manually update his or her preferences explicitly.

In another embodiment, a user may be provided with customizedadvertisements based on travel information that a user is tracking. Forexample, in a notification that a fare has been changed for a particularflight, the user may also be informed of availability and pricing for anearby hotel.

FIG. 11 shows a block diagram of a computing system used to implementthe server functionality in accordance with an embodiment of the presentdisclosure. The computing system 1112 in this illustration includesCOMPUTER1 1102 a, COMPUTER2 1102 b, and COMPUTER3 1102 c. The threecomputers 1102 a, 1102 b and 1102 c are networked together through arouter 1108 or other network hardware device. While a networkedconnection is shown here, this configuration is not crucial to thedisclosure and the computers 1102 may be connected through anyconventional means. The networked connection is shown to emphasize thatthe computers may, but need not necessarily, be in the same location.Each computer 1102 a, 1102 b, and 1102 c includes one or more centralprocessing units (1104 a, 1104 b, and 1104 c, respectively) and memories(1106 a, 1106 b, and 1106 c, respectively). The central processing units904 are collectively referenced as a processing system, and may as hereinclude one or more processors. Likewise, the memories 1106 arecollectively referenced as a memory system.

In addition, computing system 1112 includes a storage 1110 (e.g., one ormore hard drives) for storing data or code obtained from or used bycomputers 1102 a, 1102 b, or 1103 c or from another source via externalnetwork 1114, also coupled to the router. The storage 1110 may, forexample, include the client executable for distribution to clients overthe external network 1114. A database 1114 is also coupled to router1108 and may used by the computing system as a central repository tostore data obtained from tasks performed by a plurality of distributedagents in network 1114. In one embodiment, database 1114 is a highcapacity, high speed networked array of disk drives.

The processing system 1104 is coupled to the memory system 1106 in thesense that information in one of the memories 1 106 a-c may store datathat can be used by or in conjunction with one or more of the centralprocessing units 1104 a-c. The use of the word “coupling” in thisdisclosure does not require a direct connection between any givencentral processing unit and memory. Nor does the use of word “coupling”require that a particular central processing unit must be on the samemachine or network as a particular memory.

For purposes of this disclosure, the software and applications run bythe processing system 1104 of FIG. 11 and the server 200 of FIG. 1 isalso referred to as executable code, server executable code or servercode. Similarly, the software or executables run by one or more of theclient machines 101, 102, and 103 (FIGS. 1 and 2) is also referred to asexecutable code, client code, or client executable code. For purposes ofthis disclosure, the processing system need not be limited to what isreferred to as central processing units, but may embody any number ofalternative types of processing circuits, whether digital or analog andwhether dedicated or general purpose, etc. Likewise, the memory systemmay comprise any number of topologies such as a random access memory,read only memory, programmable memory, flash memory, hard disk drive,optical drive, etc.

For purposes of this disclosure, the computing system may comprise oneor more computers. They may incorporate any of a variety of commonlyemployed physical and functional server architectures. The computerswithin the system 1112 need not be in the same physical location and maycommunicate using one or more wired or wireless network connections.Each computer may be dedicated to a single task or function, oralternatively, the computers may split the resources of a plurality offunctions. Each computer in the system 1112 may include its own storage,or rely on a central or remote storage repository. In some embodimentsstorage 1110 is not necessary.

The server executable code may likewise be resident on a single computer1102, or it may be run on a plurality of computers. Similarly, theserver code may be configured to run on one or more CPUs. The memorysystem contained in computer system 1112 may include a single memory1106, or it may include a plurality of memories associated with the samemachine or with different machines.

The database 1114 may be physically realized as a central repository orthe database may be physically distributed over a plurality oflocations. The database 1114 may, for example, be configured as aStorage Area Network, or one or more RAID arrays.

The machines described herein may be implemented using software,hardware, or a combination of both. By way of example, the server oragent machines may be implemented with one or more integrated circuits(IC), either alone or in common with other processing functions (e.g., adata processor, etc.). An IC may comprise a general purpose processor, adigital signal processor (DSP), an application specific integratedcircuit (ASIC), a field programmable gate array (FPGA) or otherprogrammable logic device, discrete gate or transistor logic, discretehardware components, electrical components, optical components,mechanical components, or any combination thereof designed to performthe functions described herein, and may execute codes or instructionsthat reside within the IC, outside of the IC, or both. A general purposeprocessor may be a microprocessor, but in the alternative, the generalpurpose processor may be any conventional processor, controller,microcontroller, or state machine. The machines may also be implementedas a combination of computing devices, e.g., a combination of a DSP anda microprocessor, a plurality of microprocessors, one or moremicroprocessors in conjunction with a DSP core, or any other suchconfiguration.

The code or instructions may be embodied in one or more machine-readablemedia to support software applications. Software shall be construedbroadly to mean instructions, programs, code, or any other electronicmedia content whether referred to as software, firmware, middleware,microcode, hardware description language, or otherwise. Machine-readablemedia may include one or more electronic files, including a set ofexecutable code in whatever format. For example, files comprising asoftware application downloaded from the Internet constitute amachine-readable media. Machine-readable media may also include storageintegrated with a processor, such as might be the case with an ASIC.Machine-readable media may also include storage external to a processor,such as a Random Access Memory (RAM), a flash memory, a Read Only Memory(ROM), a Programmable Read-Only Memory (PROM), an Erasable PROM (EPROM),registers, a hard disk, a removable disk, a CD-ROM, a DVD, or any othersuitable storage device. In addition, machine-readable media may includea transmission line or a carrier wave that encodes a data signal. Thoseskilled in the art will recognize how best to implement the describedfunctionality for the searcher 304. Moreover, in some aspects anysuitable computer-program product may comprise a computer-readablemedium or machine-readable medium comprising codes relating to one ormore of the aspects of the disclosure. In some aspects a computerprogram product may comprise packaging materials.

The previous description is provided to enable any person skilled in theart to practice the various aspects described herein. Variousmodifications to these aspects will be readily apparent to those skilledin the art, and the generic principles defined herein may be applied toother aspects. Thus, the claims are not intended to be limited to theaspects shown herein, but is to be accorded the full scope consistentwith the language claims. All structural and functional equivalents tothe elements of the various aspects described throughout this disclosurethat are known or later come to be known to those of ordinary skill inthe art are expressly incorporated herein by reference and are intendedto be encompassed by the claims. Moreover, nothing disclosed herein isintended to be dedicated to the public regardless of whether suchdisclosure is explicitly recited in the claims. No claim element is tobe construed under the provisions of 35 U.S.C. § 112, sixth paragraph,unless the element is expressly recited using the phrase “means for” or,in the case of a method claim, “step for”.

1. A computing system for tracking price changes in assets including products and services, comprising: a data storage device for storing executable code; and a processing system associated with the data storage device and configured to run the code, wherein the code is configured when run to: receive an identity and a price of an asset, the price comprising a first value and subject to change over time; identify at least one rule for determining whether a specified action is authorized when the price changes from the first value to a second value; track the price over time; identify a change in the price from the first value to the second value; and issue a notification sufficient to identify the second value when the at least one rule authorizes the action.
 2. The computing system of claim 1 wherein the at least one rule comprises issuing the notification only when a difference between the first value and the second value satisfies a condition.
 3. The computing system of claim 1 wherein the notification further comprises identifying the action.
 4. The computing system of claim 1 wherein the action comprises issuing a refund relating to a purchase of the asset.
 5. The computing system of claim 4 wherein the at least one rule comprises a criterion for determining whether a purchaser of the asset is entitled to a refund.
 6. The computing system of claim 4 wherein the at least one rule authorizes the action, and wherein the code is further configured to process the refund on behalf of a purchaser of the asset.
 7. The computing system of claim 1 wherein the data is received from a client machine, and the action comprises purchasing of the asset by a user of the client machine.
 8. The computing system of claim 1 wherein the code is further configured to: receive an e-mail from a client machine over a network, the e-mail comprising a request to track the price of the asset; and track the price in response to the request.
 9. The computing system of claim 1 wherein the code is further configured to: issue to a client machine a request to verify that the asset to be purchased is available; and receive a response from the client machine comprising the verification.
 10. The computing system of claim 1 wherein the code is further configured to create one or more electronic files comprising the second value and an identity of the asset.
 11. The computing system of claim 10 wherein the one or more electronic files comprise a web page.
 12. A computing system comprising: a data storage device having executable code stored thereon; and a processing system configured to run the executable code; the code configured when run to: (a) receive an identity and a first price of an asset, the price subject to change over time; (b) determine at least one tracking rule for the asset; (c) cause a query to be executed in accordance with the at least one tracking rule, the query configured to identify whether a price of the asset has changed; (d) issue a notification comprising a second price identified in step (c) if the notification is authorized by the at least one tracking rule; and (e) repeat steps (c)-(d) one or more times if the notification is not authorized.
 13. The computing system of claim 12 wherein the at least one tracking rule comprises not issuing the notification when a price different from the first price is not identified.
 14. The computing system of claim 12 wherein the at least one tracking rule comprises causing the query to be executed when the asset is active.
 15. The computing system of claim 12 wherein the at least one tracking rule comprises issuing the notification when the second price is different from the first price by at least a specified amount.
 16. The computing system of claim 12 wherein the at least one tracking rule comprises a request to execute the query at a specified network location.
 17. The computing system of claim 12 wherein the query is executed by the computing system.
 18. The computing system of claim 12 wherein the query is executed by another computer in communication with the computing system over a network connection.
 19. The computing system of claim 12 wherein the at least one tracking rule comprises issuing a refund to a purchaser of the asset in response to the identifying the second price.
 20. The computing system of claim 19 wherein the notification further comprises information sufficient to convey that the refund is authorized.
 21. The computing system of claim 19 wherein the code is further configured to authorize the refund on behalf of the purchaser.
 22. The computing system of claim 19 wherein the code is further configured to process a refund in response to a confirmation by the purchaser.
 23. A computer comprising: a display; a memory device having executable code stored thereon; a processing system associated with the display and the memory device and configured to run the code, the code configured when run to: execute a query at a website; retrieve an identity and a price of an asset from the website; send the identity and the price over a network to a specified node; receive a request from the node to execute an automated query at the website to determine whether the price has changed; execute an automated query at the website in response to the one or more requests; send data retrieved by the query to the node, the data comprising a new price; receive a notification from the node in accordance with a tracking rule; and displaying the notification on the display.
 24. The computer of claim 23 wherein the tracking rule comprises one or more conditions upon which a purchaser of the asset is entitled to a refund.
 25. The computer of claim 24 wherein the notification comprises an entitlement to a purchaser of the asset to a refund.
 26. The computer of claim 23 wherein the tracking rule comprises a minimum amount of a change in the price of the asset for the notification to be sent.
 27. The computer of claim 23 wherein the code is further configured to: identify the tracking rule; and send the tracking rule to the node.
 28. The computer of claim 23 wherein the tracking rule comprises a default rule and wherein the code is configured to send to the node a new tracking rule, the new tracking rule overriding the default tracking rule at the node.
 29. The computer of claim 23 wherein the notification comprises a web page. 